/**
 * 获取状态栏的高度。
 * 无参数。
 * @return {Number} 返回状态栏的高度，单位为像素。
 */
export const getStatusBarHeight = () => {
  return uni.getSystemInfoSync().statusBarHeight || 0
}

/**
 * 获取内容区域的高度，包括状态栏和菜单按钮的高度。
 * 无参数。
 * @return {Number} 返回内容区域的高度，单位为像素。
 */
export const getContent = () => {
  // 获取状态栏高度
  let statusHeight = getStatusBarHeight()
  let menu = null
  // 尝试获取菜单按钮的边界矩形
  // #ifdef MP-WEIXIN
  menu = uni.getMenuButtonBoundingClientRect() || null
  // #endif
  if (menu) {
    // 如果存在菜单按钮，计算并返回内容区域高度
    return statusHeight + (menu.top - statusHeight) * 2 + menu.height
  } else {
    // 如果不存在菜单按钮，仅返回状态栏高度
    return statusHeight
  }
}

/**
 * 获取返回按钮的高度，即菜单按钮上方的状态栏区域高度。
 * 无参数。
 * @return {Number} 返回返回按钮的高度，单位为像素。
 */
export const getBackHeight = () => {
  // 获取状态栏高度
  let statusHeight = getStatusBarHeight()
  // 尝试获取菜单按钮的边界矩形
  let menu = null
  // 尝试获取菜单按钮的边界矩形
  // #ifdef MP-WEIXIN
  menu = uni.getMenuButtonBoundingClientRect() || null
  // #endif
  if (menu) {
    // 如果存在菜单按钮，计算并返回返回按钮的高度
    console.log(statusHeight);
    console.log(menu);
    console.log(statusHeight + (menu.top - menu.height));
    return menu.top
  } else {
    // 如果不存在菜单按钮，仅返回状态栏高度
    return statusHeight
  }
}


export function parseTimestamp(timestamp) {
  const now = new Date();
  const inputDate = new Date(timestamp);
  const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
  const yesterday = new Date(today);
  yesterday.setDate(yesterday.getDate() - 1);

  // 计算小时数，以便确定时间段
  const hours = inputDate.getHours();
  let timePeriod;
  if (hours >= 2 && hours < 6) {
    timePeriod = "凌晨";
  } else if (hours >= 6 && hours < 12) {
    timePeriod = "早上";
  } else if (hours >= 12 && hours < 14) {
    timePeriod = "中午";
  } else if (hours >= 14 && hours < 18) {
    timePeriod = "下午";
  } else if (hours >= 18 && hours < 23) {
    timePeriod = "晚上";
  } else {
    timePeriod = "深夜";
  }

  const formattedTime = `${timePeriod} ${inputDate.getHours()}:${String(inputDate.getMinutes()).padStart(2, '0')}`;

  if (inputDate.toDateString() === today.toDateString()) {
    return formattedTime;
  } else if (inputDate.toDateString() === yesterday.toDateString()) {
    return `昨天 ${formattedTime}`;
  } else if (inputDate.getFullYear() === now.getFullYear() &&
    now.getDate() - inputDate.getDate() < 7 && now.getDate() - inputDate.getDate() > 1) {
    // 超出昨天，返回星期几
    let getDay = inputDate.getDate()
    const weekdays = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
    return `${weekdays[inputDate.getDay()]}`;
  } else {
    // 超出本周，返回年月日格式
    return `${inputDate.getFullYear()}/${String(inputDate.getMonth() + 1).padStart(2, '0')}/${String(inputDate.getDate()).padStart(2, '0')}`;
  }
}